## Game update script

### Description

This script automates following steps:

1. Check for game updates
2. Download the game files
3. Revert any previously applied patches
4. Install or update the game files
5. Apply the newest patch

If you prefer a graphical updater, check out:

 * [Paimon Launcher](https://notabug.org/loentar/paimon-launcher)
 * [An Anime Game Launcher](https://gitlab.com/an-anime-team/an-anime-game-launcher)


### Requirements

This script requires following applications:

 * `bash` (update and patch script)
 * `jq` (JSON parsing)
 * Either `aria2c`, `wget`, `curl` or `axel` (file download)
 * `xdelta3` (patch script)


### Usage instructions

The current working directory (`pwd`) specifies the update or installation path.

Example + syntax:

	cd "/path/to/game/directory/"
	bash "/path/to/dawn/updater/update_gi.sh" [OPTIONS ...]

List of OPTIONS:

 * `install`: Switches from the "update" to "installation" mode 
     * By default, an update will be performed in the current directory
 * `nodelete`: Keeps the downloaded archives after the installation or update.

If errors occur after updating the game files, [re-run the patch scripts manually](../#applying-the-workaround).


#### New installation

Use the `install` command line option to install the newest game version to
an **empty** directory.

Example:

	# Create a new directory in HOME (~) for the installation
	mkdir -p "$HOME/Genshin Impact Game"
	cd "$HOME/Genshin Impact Game/"
	
	bash "/path/to/dawn/updater/update_gi.sh" install


#### Game update

Updates the game in the working directory to the newest version.

**Important:** If the official launcher was used for the installation, ensure that the
current working directory (`pwd`) contains `GenshinImpact.exe` but not `launcher.exe`.

Example:

	# Update game located in HOME
	cd "$HOME/Genshin Impact Game/"
	bash "/path/to/dawn/updater/update_gi.sh"

For advanced users: `perform_update.sh` can be used to manually apply downloaded archives
